home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS20.ADF / BobEd / requesters.c < prev    next >
C/C++ Source or Header  |  1989-01-27  |  9KB  |  332 lines

  1. #include <bobed.h>
  2.  
  3. /*
  4.    "requesters.c"
  5.    This file contains the definitions for the requesters used in BobEd
  6. */
  7.  
  8. #define  RWIDE 150      /* requester width   */
  9. #define  RHIGH 50       /* requester height  */
  10.  
  11. extern struct TextAttr TestFont;
  12.  
  13. /* common data for save and load requesters */
  14. SHORT  reqdata3 [] = {1,1,RWIDE-2,1,RWIDE-2,RHIGH-2,1,RHIGH-2,1,1};
  15. struct Border     reqborder3 = {
  16.    0,0,1,NULL,JAM1,5,(SHORT *)&reqdata3[0],NULL
  17. };
  18. SHORT  reqdata2 [] = {1,1,RWIDE-2,1,RWIDE-2,13,1,13,1,1};
  19. struct Border     reqborder2 = {
  20.    0,0,1,NULL,JAM1,5,(SHORT *)&reqdata2[0],(struct Border *)&reqborder3
  21. };
  22. /* border data for save requester */
  23. SHORT  saveborderdata [] = {-2,-2,RWIDE-51,-2,RWIDE-51,9,-2,9,-2,-2};
  24. struct Border     savegadborder = {
  25.    0,0,1,NULL,JAM1,5,(SHORT *)&saveborderdata[0],NULL
  26. };
  27. /* border data for load requester */
  28. SHORT  loadborderdata [] = {-2,-2,RWIDE-21,-2,RWIDE-21,9,-2,9,-2,-2};
  29. struct Border     loadgadborder = {
  30.    0,0,1,NULL,JAM1,5,(SHORT *)&loadborderdata[0],NULL
  31. };
  32. /* border data for integer gadget */
  33. SHORT  intborderdata [] = {-2,-2,22,-2,22,9,-2,9,-2,-2};
  34. struct Border     intgadborder = {
  35.    0,0,1,NULL,JAM1,5,(SHORT *)&intborderdata[0],NULL
  36. };
  37.  
  38. /* define the width of the info requester */
  39. #define  INFOWIDE    195
  40. #define  INFOHIGH    55
  41. #define  INFOLINES   4
  42.  
  43. /* data for info requester */
  44. SHORT  infobdata1 [] = {0,0,INFOWIDE-1,0,INFOWIDE-1,INFOHIGH-1,0,INFOHIGH-1,0,0};
  45. struct Border     inforeqb1 = {
  46.    0,0,3,NULL,JAM1,5,(SHORT *)&infobdata1[0],NULL
  47. };
  48. SHORT  infobdata2 [] ={2,2,INFOWIDE-3,2,INFOWIDE-3,INFOHIGH-3,2,INFOHIGH-3,2,2};
  49. struct Border     inforeqb2 = {
  50.    0,0,2,NULL,JAM1,5,(SHORT *)&infobdata2[0],(struct Border *)&inforeqb1
  51. };
  52.  
  53. /* requester definitons */
  54. struct Requester  savereq;
  55. struct Requester  loadreq;
  56. struct Requester  inforeq;
  57. /* text for requesters  */
  58. struct IntuiText  savetext;
  59. struct IntuiText  infotext [INFOLINES];
  60. struct IntuiText  oktext;
  61. struct IntuiText  loadtext;
  62. struct IntuiText  loadgtext;
  63. struct IntuiText  canceltext;
  64. struct IntuiText  frametext;
  65. struct IntuiText  formattext;
  66.  
  67. /* file name buffers for string gadgets */
  68. UBYTE namebuffer [20];
  69. UBYTE undobuffer [20];
  70.  
  71. /* string info for save and load string gadgets */
  72. struct StringInfo stringinfo = {
  73.    (UBYTE *)&namebuffer,
  74.    (UBYTE *)&undobuffer,
  75.    0,
  76.    20,
  77.    0,
  78.    0,0,0,0,0,0,0,0
  79. };
  80.  
  81. /* number of planes buffer for integer save gadget */
  82. UBYTE intbuffer [2] = {'2','\0'}; /* default to 2 planes */
  83.  
  84. /* integer gadget is just a type of string gadget */
  85. struct StringInfo intinfo = {
  86.    (UBYTE *)&intbuffer,
  87.    NULL,
  88.    0,
  89.    2,
  90.    0,
  91.    0,0,0,0,0,0,
  92.    2,
  93.    0
  94. };
  95.  
  96. /* gadget to cancel save and load */
  97. struct Gadget cancelgad = {
  98.    NULL,
  99.    RWIDE-57,RHIGH-15,48,8,
  100.    GADGHBOX,
  101.    RELVERIFY|ENDGADGET,
  102.    REQGADGET|BOOLGADGET,
  103.    NULL,NULL,
  104.    &canceltext,
  105.    NULL,NULL,
  106.    99,      /* 99 is a nop ID */
  107.    NULL
  108. };
  109.  
  110. /* finished with info gadget */
  111. struct Gadget okgad = {
  112.    NULL,
  113.    INFOWIDE-42,INFOHIGH-14,32,8,
  114.    GADGHBOX,
  115.    RELVERIFY|ENDGADGET,
  116.    REQGADGET|BOOLGADGET,
  117.    NULL,
  118.    NULL,
  119.    &oktext,
  120.    NULL,NULL,
  121.    99,
  122.    NULL
  123. };
  124.  
  125. /* user is finished with name and wants to frame image */
  126. struct Gadget framegad = {
  127.    (struct Gadget *)&cancelgad,
  128.    10,RHIGH-15,40,8,
  129.    GADGHBOX,
  130.    RELVERIFY|ENDGADGET,
  131.    REQGADGET|BOOLGADGET,
  132.    NULL,NULL,
  133.    &frametext,
  134.    NULL,NULL,
  135.    93,
  136.    NULL
  137. };
  138.  
  139. /* accept current filename and load image */
  140. struct Gadget loadgad = {
  141.    (struct Gadget *)&cancelgad,
  142.    10,RHIGH-15,32,8,
  143.    GADGHBOX,
  144.    RELVERIFY|ENDGADGET,
  145.    REQGADGET|BOOLGADGET,
  146.    NULL,NULL,
  147.    &loadgtext,
  148.    NULL,NULL,
  149.    90,
  150.    NULL
  151. };
  152.  
  153. /* toggle between binary and c format */
  154. struct Gadget formatgad = {
  155.    (struct Gadget *)&framegad,
  156.    60,RHIGH-15,24,8,
  157.    GADGHBOX|SELECTED, /* starts out selected (save as "C") */
  158.    TOGGLESELECT,      /* toggle and dont exit when hit */
  159.    REQGADGET|BOOLGADGET,
  160.    NULL,NULL,
  161.    &formattext,
  162.    NULL,NULL,
  163.    99,
  164.    NULL
  165. };
  166.  
  167. /* gets an integer representing the number of planes to save */
  168. struct Gadget stringint = {
  169.    (struct Gadget *)&formatgad,
  170.    RWIDE-32,20,16,12,
  171.    GADGHCOMP,
  172.    RELVERIFY|GADGIMMEDIATE|LONGINT, /* longint means that this is an int */
  173.    REQGADGET|STRGADGET,             /* a special type of string gadget */
  174.    (APTR)&intgadborder,
  175.    NULL,
  176.    NULL,
  177.    NULL,
  178.    (APTR)&intinfo,   /* returns result here */
  179.    99,
  180.    NULL
  181. };
  182.  
  183. /* save filename gadget */
  184. struct Gadget stringsave = {
  185.    (struct Gadget *)&stringint,
  186.    10,20,RWIDE-47,12,
  187.    GADGHCOMP, /* dont end when hit */
  188.    RELVERIFY|GADGIMMEDIATE,
  189.    REQGADGET|STRGADGET,
  190.    (APTR)&savegadborder,
  191.    NULL,
  192.    NULL,
  193.    NULL,
  194.    (APTR)&stringinfo,  /* returns filename here */
  195.    99,
  196.    NULL
  197. };
  198.  
  199. /* save filename string gadget */
  200. struct Gadget stringload = {
  201.    (struct Gadget *)&loadgad,
  202.    12,20,RWIDE-16,12,
  203.    GADGHCOMP,
  204.    RELVERIFY|GADGIMMEDIATE|ENDGADGET, /* end when hit (<CR>) */
  205.    REQGADGET|STRGADGET,
  206.    (APTR)&loadgadborder,
  207.    NULL,
  208.    NULL,
  209.    NULL,
  210.    (APTR)&stringinfo,
  211.    90,      /* shared with loadgad */
  212.    NULL
  213. };
  214.  
  215. VOID  initdiskreq ()
  216. {
  217.    int   i;
  218.  
  219.    InitRequester (&savereq);
  220.    savereq.LeftEdge  =  HWIDE;
  221.    savereq.TopEdge   =  10;
  222.    savereq.Width     =  RWIDE;
  223.    savereq.Height    =  RHIGH;
  224.    savereq.ReqGadget =  &stringsave;   /* first requester gadget */
  225.    savereq.ReqText   =  (struct IntuiText *)&savetext; /* title  */
  226.    savereq.BackFill  =  2;    /* back color */
  227.    savereq.ReqBorder =  (struct Border *)&reqborder2; /* first border */
  228.  
  229.    InitRequester (&loadreq);
  230.    loadreq.LeftEdge  =  HWIDE;
  231.    loadreq.TopEdge   =  10;
  232.    loadreq.Width     =  RWIDE;
  233.    loadreq.Height    =  RHIGH;
  234.    loadreq.ReqGadget =  &stringload;
  235.    loadreq.ReqText   =  (struct IntuiText *)&loadtext;
  236.    loadreq.BackFill  =  2;
  237.    loadreq.ReqBorder =  (struct Border *)&reqborder2;
  238.  
  239.    InitRequester (&inforeq);
  240.    inforeq.LeftEdge  =  30;
  241.    inforeq.TopEdge   =  20;
  242.    inforeq.Width     =  INFOWIDE;
  243.    inforeq.Height    =  INFOHIGH;
  244.    inforeq.ReqGadget =  &okgad;
  245.    inforeq.ReqText   =  (struct IntuiText *)&infotext[0];
  246.    inforeq.BackFill  =  1;
  247.    inforeq.ReqBorder =  (struct Border *)&inforeqb2;
  248.  
  249.    canceltext.FrontPen =  3;
  250.    canceltext.BackPen  =  1;
  251.    canceltext.DrawMode =  JAM2;
  252.    canceltext.ITextFont=  (struct TextAttr *)&TestFont;
  253.    canceltext.NextText =  NULL;
  254.    canceltext.LeftEdge =  0;
  255.    canceltext.TopEdge  =  0;
  256.    canceltext.IText    =  "CANCEL";
  257.  
  258.    loadgtext.FrontPen =  3;
  259.    loadgtext.BackPen  =  1;
  260.    loadgtext.DrawMode =  JAM2;
  261.    loadgtext.ITextFont=  (struct TextAttr *)&TestFont;
  262.    loadgtext.NextText =  NULL;
  263.    loadgtext.LeftEdge =  0;
  264.    loadgtext.TopEdge  =  0;
  265.    loadgtext.IText    =  "LOAD";
  266.  
  267.    oktext.FrontPen =  2;
  268.    oktext.BackPen  =  3;
  269.    oktext.DrawMode =  JAM2;
  270.    oktext.ITextFont=  (struct TextAttr *)&TestFont;
  271.    oktext.NextText =  NULL;
  272.    oktext.LeftEdge =  0;
  273.    oktext.TopEdge  =  0;
  274.    oktext.IText    =  " OK ";
  275.  
  276.    frametext.FrontPen =  3;
  277.    frametext.BackPen  =  1;
  278.    frametext.DrawMode =  JAM2;
  279.    frametext.ITextFont=  (struct TextAttr *)&TestFont;
  280.    frametext.NextText =  NULL;
  281.    frametext.LeftEdge =  0;
  282.    frametext.TopEdge  =  0;
  283.    frametext.IText    =  "FRAME";
  284.  
  285.    loadtext.FrontPen =  1;
  286.    loadtext.BackPen  =  2;
  287.    loadtext.DrawMode =  JAM2;
  288.    loadtext.ITextFont=  (struct TextAttr *)&TestFont;
  289.    loadtext.NextText =  NULL;
  290.    loadtext.LeftEdge =  4;
  291.    loadtext.TopEdge  =  4;
  292.    loadtext.IText    =  "Load Image";
  293.  
  294.    savetext.FrontPen =  1;
  295.    savetext.BackPen  =  2;
  296.    savetext.DrawMode =  JAM2;
  297.    savetext.ITextFont=  (struct TextAttr *)&TestFont;
  298.    savetext.NextText =  NULL;
  299.    savetext.LeftEdge =  4;
  300.    savetext.TopEdge  =  4;
  301.    savetext.IText    =  "Save Image";
  302.  
  303.    formattext.FrontPen =  3;
  304.    formattext.BackPen  =  1;
  305.    formattext.DrawMode =  JAM2;
  306.    formattext.ITextFont=  (struct TextAttr *)&TestFont;
  307.    formattext.NextText =  NULL;
  308.    formattext.LeftEdge =  0;
  309.    formattext.TopEdge  =  0;
  310.    formattext.IText    =  " C ";
  311.  
  312.    for (i=0;i<INFOLINES;i++)  /* init the info text */
  313.    {
  314.       infotext[i].FrontPen =  2;
  315.       infotext[i].BackPen  =  1;
  316.       infotext[i].DrawMode =  JAM2;
  317.       infotext[i].ITextFont=  (struct TextAttr *)&TestFont;
  318.       infotext[i].NextText =  (struct IntuiText *)&infotext[i+1];
  319.       infotext[i].LeftEdge =  5;
  320.       infotext[i].TopEdge  =  5+i*10;
  321.       infotext[i].IText    =  NULL;  /* fill in below  */
  322.    }
  323.    infotext[INFOLINES-1].NextText = NULL;
  324.    infotext[0].FrontPen = 3;
  325.  
  326.    infotext[0].IText = "    BobEd  Ver 1.5";
  327.    infotext[1].IText = "⌐ 1986, Peter Philip.";
  328.    infotext[2].IText = "Free to distribute but";
  329.    infotext[3].IText = "     not to sell.";
  330. }
  331.  
  332.